1. Field of the Invention
The invention relates to a messaging system for a telecommunication controller operating in real time and which comprises multiple distributed sub-systems such as a main controller and multiple line cards. The invention relates particularly to such systems which include a number of circuits having embedded software.
2. Prior Art Discussion
Heretofore, the approach for messaging within such systems has been to provide dedicated communication protocols tied into hardware buses and interface circuits in order to achieve real time performance. Such an approach has been satisfactory for many situations.
However, in recent years there has been a growing requirement for telecommunication controllers to have inherent flexibility to allow modification. Such modification is required both to change the functionality of the system and also to allow growth in cater for ever-increasing transaction volumes. Messaging protocols which are bound to the higher-level and lower-level functionality tend to inhibit the ability to modify telecommunication controllers.
It is an object of the invention to provide a messaging system for a telecommunication controller which allows simple modification of resources which perform telecommunication functions and of application which control and request the functions.
A development of this object is to decouple the messaging system from the applications and resources so that they may be modified independently of the messaging system.
Another object is to achieve this flexibility without affecting response time so that real time performance is still achieved.
The invention provides a messaging system in a telecommunication controller comprising a plurality of distributed sub-systems, the messaging system comprising:
means in a requesting sub-system for creating a proxy to control messaging for a function to be carried out in real time by a resource on a resource sub-system, the function being requested by an application on the requesting sub-system;
a middleware engine in the requesting sub-system comprising means for acting in response to the proxy in real time to generate a function request message and to transmit said message to the resource sub-system;
a middleware engine in the resource sub-system comprising means for reading the message, determining a server associated with the function, and activating the server;
means in the server for controlling performance of the function by the resource;
means in the resource middleware engine for passing control back to the proxy when the function is complete; and
means in the requesting sub-system for terminating the proxy when the requesting application is satisfied.
Preferably, each middleware engine comprises means for operating as a requesting or at a resource middleware engine whereby function requests are bi-directional.
In one embodiment, the sub-systems comprise a main system controller and a plurality of line cards.
In another embodiment, the requesting application comprises means for creating the proxy and for terminating the proxy.
In one embodiment, the proxy is an instance of a proxy object class.
Preferably, the server is an instance of a server object class.
In one embodiment, the server is stored in non-volatile memory.
In another embodiment, the requesting middleware engine is coupled to the application only via the proxy, whereby the application may be created or modified independently of the middleware engine.
In a further embodiment, the resource middleware engine is coupled to the resource only via the server, whereby the resource may be created or modified independently of the middleware engine.
Preferably, the server registers automatically with the resource middleware engine.
In a further embodiment, the servers for both active and redundant resources register with the resource middleware engine to provide automatic redundancy.
Preferably, the requesting application comprises means for creating the proxy by presenting a logical or a physical key for the resource and the function. In one embodiment, the message includes the key function parameter arguments.
In a further embodiment, the proxy controls one of a plurality of types of message transactions, including a synchronous type in which the function is invoked, a response is awaited and a return value is passed to the requesting application, and a synchronous type in which the function is invoked only.
In another embodiment, the proxy controls a deferred synchronous transaction in which a function is invoked, a reply is transmitted and an application retrieves the reply later.
In one embodiment the proxy initiates multiple re-tries upon failure of the requested function.
In another aspect, the invention provides a telecommunication system comprising a messaging system as claimed in any preceding claim.